复合查询 Sample详情

最后更新时间:2020年12月8日

复合条件查询,是属性条件与空间条件结合应用的查询方式,根据选择图层、字段、关键字,结合空间范围条件,对图层要素进行查询并显示查询结果。通过结果要素可获取其空间信息与属性信息,根据应用需求解析结果,并选择适合的方式展现。

实现方法与空间查询、属性查询一致,只是在设置查询条件时,需要同时设置空间查询范围setRect()和属性查询条件setFilter()

            //空间几何范围条件
            queryRect = new Rect(xmin, ymin, xmax, ymax);
            //属性条件SQL(模糊查询)
            String condition = "Name like '%公园%'";

            QueryDef queryDef = new QueryDef();
            queryDef.setRect(queryRect, SpaQueryMode.ModeMBRIntersect);//设置矩形查询条件(模糊相交)
            queryDef.setPagination(0, 20);//设置分页查询
            queryDef.setSubFields("*");//属性相关选项设置,设置查询结果字段集 字段名支持以空格或者'\t'隔开,如a, b , c
            queryDef.setWithSpatial(true);//是否设置缓存空间图形记录
            queryDef.setFilter(condition);//设置属性查询条件:注意sql语句的写法,如果不知道的话可以先在桌面工具中测试是否可用
            featureQuery.setQueryDef(queryDef);

交互式查询

交互查询,即以用户绘制的空间范围为条件,进行要素的查询操作,在实际项目中应用非常广泛。

从实现原理上说,交互式查询可以分为交互式图形绘制、要素查询两个阶段。用户在地图上绘制任意图形,然后获取其空间范围,作为空间查询的条件,进而实现查询效果。

从接口实现上来说,是地图手势事件操作、图形绘制、要素查询部分功能模块的结合,可以参考对应模块的开发指南文档。